// ----------------------------------
// RSDK Project: Sonic Essence
// Script Description: Character Select
// Script Author: Tails LP
// ----------------------------------

//-------Aliases-------//
private alias object.value0 : music.select
private alias object.value1 : character
private alias object.value2 : quitting
private alias object.value3 : start.fadeValue
private alias object.value4 : slide
private alias object.value5 : yscroll


reserve function select_char

function select_char
	if character == 0
		temp0 = screen.xcenter
		temp0 += 56
		if slide < temp0
			slide += 4
		endif
	else
		temp0 = screen.xcenter
		temp0 -= 56
		if slide > temp0
			slide -= 4
		endif
	endif

	temp1 = inputPress.left
	temp1 |= inputPress.right
	if temp1 == 1
		character ^= 1
	endif
	
endfunction

event ObjectMain
	yscroll --
	if yscroll <= -128
		yscroll = 0
	endif
	switch object.state
	case 0
		PlayMusic(0)
		slide = screen.xcenter
		start.fadeValue = 256
		SetScreenFade(0, 0, 0, start.fadeValue)
		object.state ++
		break
	case 1
		if start.fadeValue > 0
			start.fadeValue -= 8
		else
			start.fadeValue = 0
			object.state ++
		endif
		SetScreenFade(0, 0, 0, start.fadeValue)
		break
	case 2
		CallFunction(select_char)
		
		temp3 = inputPress.buttonA
		temp3 |= inputPress.buttonC
		temp3 |= inputPress.Start
		if temp3 == 1
			PlaySfx(SfxName[Menu Select], 0)
			object.state = 3
		endif

		
		temp4 = inputPress.buttonB
		if temp4 == 1
			PlaySfx(SfxName[Menu Back], 0)
			object.state = 4
		endif
		break
	case 3
		SetScreenFade(0, 0, 0, start.fadeValue)
		start.fadeValue += 8
		music.volume -= 4
		if start.fadeValue >= 300
			stage.activeList = REGULAR_STAGE
			stage.listPos = 0
			stage.playerListPos = character
			LoadStage()
		endif
		break
	case 4
		SetScreenFade(0, 0, 0, start.fadeValue)
		start.fadeValue += 8
		music.volume -= 4
		if start.fadeValue >= 300
			stage.activeList = PRESENTATION_STAGE
			stage.listPos = 0
			LoadStage()
		endif
		break
	endswitch
end event


event ObjectDraw

	temp0 = slide
	temp0 -= 4

	if character == 0
		DrawRect(0, 0, slide, screen.ysize, 0, 0, 112, 255)
		DrawRect(slide, 0, screen.xsize, screen.ysize, 224, 224, 224, 255)
	else
		DrawRect(0, 0, slide, screen.ysize, 224, 224, 224, 255)
		DrawRect(slide, 0, screen.xsize, screen.ysize, 98, 0, 0, 255)
	endif

	DrawRect(temp0, 0, 8, screen.ysize, 0, 0, 0, 255)

	temp1 = yscroll
	DrawSpriteScreenXY(0, temp0, temp1)
	temp1 += 128
	DrawSpriteScreenXY(0, temp0, temp1)
	temp1 += 128
	DrawSpriteScreenXY(0, temp0, temp1)


	temp1 = yscroll
	temp1 -= 8
	DrawSpriteScreenXY(1, temp0, temp1)
	temp1 += 128
	DrawSpriteScreenXY(1, temp0, temp1)
	temp1 += 128
	DrawSpriteScreenXY(1, temp0, temp1)


	temp0 = slide
	temp0 /= 2
	temp2 = screen.ycenter
	temp2 -= 16

	if character == 0
		DrawSpriteScreenXY(4, temp0, temp2)
	else
		DrawSpriteScreenXY(2, temp0, temp2)
	endif

	temp1 = screen.ysize
	temp1 += temp0
	if character == 0
		DrawSpriteScreenXY(3, temp1, temp2)
	else
		DrawSpriteScreenXY(5, temp1, temp2)
	endif
	

	DrawRect(0, 212, screen.xsize, screen.ysize, 0, 0, 0, 255)

	DrawSpriteScreenXY(6, screen.xcenter, 206)
	if character == 0
		DrawSpriteScreenXY(7, screen.xcenter, 215)
	else
		DrawSpriteScreenXY(8, screen.xcenter, 215)
	endif
end event

event ObjectStartup
	SetMusicTrack("RANKING.ogg", 0, 570139)

	LoadSpriteSheet("Menu/Menu.gif")
	SpriteFrame(-8, 0, 8, 128, 1, 312)
	SpriteFrame(8, 0, 8, 128, 10, 312)

	SpriteFrame(-60, -97, 121, 195, 591, 1)
	SpriteFrame(-90, -100, 147, 200, 713, 1)

	SpriteFrame(-60, -97, 121, 195, 591, 202)
	SpriteFrame(-90, -100, 147, 200, 713, 202)

	SpriteFrame(-85, -8, 170, 16, 19, 376)//black bar thing
	SpriteFrame(-68, -15, 137, 31, 19, 312) //sonic
	SpriteFrame(-68, -15, 137, 31, 19, 344)//shadow
end event
